The present invention relates generally to error detection and, more particularly, to error detection in a system where data is "packetized" and passes through several interfaces prior to storage on non-volatile media.
Cyclic Redundancy Checking (CRC) is a well-known error detection technique that calculates CRC byte(s) for data and appends the CRC bytes to the data to be propagated together as a CRC packet. A CRC checker then checks the CRC packet to determine whether the data has been corrupted during propagation.
Subsequently, the CRC packet itself is grouped with other CRC packets to form "super packets". It is then necessary to generate CRC bytes for the super packet and append those bytes to the super packet to form a "super CRC packet".
As the super CRC packet is passed through various interfaces, it should be checked to be sure that data is not corrupted.
Generating the CRC bytes necessary for error checking and checking the various packets and super packets is computation intensive and consumes valuable processing resources as well as introducing delays into the propagation of data.
Accordingly, efficient techniques to assure integrity of data stored on non-volatile media are needed in the industry.